Assessment of skills of a user

ABSTRACT

A method, operable on a processing device, for assessment of skills of a user may include receiving, by the processing device, an error message reporting an error associated with the user. The method may also include determining, by the processing device, a categorization of the error. Determining the categorization of the error may include assigning one of a plurality of predetermined skill ratings to the user. Each predetermined skill rating may be associated with a predefined condition. The method may additionally include generating, by the processing device, a report for assessment of the skills of the user. The report may include an identification of the user, the error, identification of a system if a system associated error, identification of a product if a product associated error, the categorization of the error and the predetermined skill rating assigned to the user.

BACKGROUND

Aspects of the present invention relate to evaluating or assessingabilities, and more particularly to a method, system and computerprogram product for assessment of skills of a user.

In current economic times, companies are looking for ways to cut costsand one way to do that is to reduce labor costs. However when turn overoccurs and cheaper labor is brought in, often there is a significant gapin the skills required to perform job functions and can end up costingthe company in terms of delayed project completion and insufficientskills for maintaining environments. Employees that lack the necessaryskills are typically relying heavily on internal or outside technicalsupport such as product support for a particular product or system theemployees need to use to complete their projects. Often times managementis unaware of the skill gap. An automatic way to provide an accurateassessment of the employees' skills, as the skills relate to theemployees' specific job function and the products the employees arerequired to know and use, to management for the purposes of performanceevaluation, skills assessment, education planning and also to generate alist of requirements to use for future training and hiring is needed.

BRIEF SUMMARY

According to one aspect of the present invention, a method, operable ona processing device, for assessment of skills of a user may includereceiving, by the processing device, an error message reporting an errorassociated with the user. The method may also include determining, bythe processing device, a categorization of the error. Determining thecategorization of the error may include assigning one of a plurality ofpredetermined skill ratings to the user. Each predetermined skill ratingmay be associated with a predefined condition. The method mayadditionally include generating, by the processing device, a report forassessment of the skills of the user. The report may include anidentification of the user, the error, identification of a system if asystem associated error, identification of a product if a productassociated error, the categorization of the error and the predeterminedskill rating assigned to the user.

According to another aspect of the present invention, a processingdevice for assessment of skills of a user may include a processor. Theprocessor may be configured to receive an error message reporting anerror associated with the user. The processor may also include a moduleoperable on the processor for assessment of skills of the user. Themodule may include a module for determining a categorization of theerror, wherein determining the categorization of the error may includeassigning one of a plurality of predetermined skill ratings to the user,each predetermined skill rating being associated with a predefinedcondition. The processor may also include a module for generating areport for assessment of skills of the user. The report may include anidentification of the user, the error, identification of a system if asystem associated error, identification of a product if a productassociated error, the categorization of the error and the predeterminedskill rating assigned to the user.

According to a further aspect of the present invention, a computerprogram product for assessment of skills of a user may include acomputer readable storage medium having computer readable program codeembodied therewith. The computer readable program code may includecomputer readable program code configured to receive an error messagereporting an error associated with the user. The computer readableprogram code may also include computer readable program code configuredto determine a categorization of the error. The categorization of theerror may be determined by assigning one of a plurality of predeterminedskill ratings to the user. Each predetermined skill rating may beassociated with a predefined condition. The computer readable programcode may further include computer readable program code configured togenerate a report for assessment of skills of the user. The report mayinclude an identification of the user, the error, identification of asystem if a system associated error, identification of a product if aproduct associated error, the categorization of the error and thepredetermined skill rating assigned to the user.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The present invention is further described in the detailed descriptionwhich follows in reference to the noted plurality of drawings by way ofnon-limiting examples of embodiments of the present invention in whichlike reference numerals represent similar parts throughout the severalviews of the drawings and wherein:

FIG. 1 is a flowchart of an example of a method for assessment of skillsof a user in accordance with an embodiment of the present invention.

FIG. 2 is a flowchart of an example of a method for creating a profilefor a user in accordance with an embodiment of the present invention.

FIGS. 3A and 3B are a flowchart of an example of a method fordetermining a categorization of an error in accordance with anembodiment of the present invention.

FIG. 4 is a block schematic diagram of an example of a system forassessment of skills of a user in accordance with an embodiment of thepresent invention.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing. Computer program code for carrying out operations foraspects of the present invention may be written in any combination ofone or more programming languages, including an object orientedprogramming language such as Java, Smalltalk, C++ or the like andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

FIG. 1 is a flowchart of an example of a method 100 for assessment ofskills of a user in accordance with an embodiment of the presentinvention. As used herein, user may be a single user or a group ofusers. In block 102, a request to create a profile for the user may bereceived. An exemplary method for creating a profile will be describedin more detail with reference to FIG. 2.

In block 104, a graphical user interface (GUI) or other mechanism may bepresented for creating the profile. The GUI may include or provide amechanism for defining a unique identification of the user or group ofusers. For example, the GUI may provide a field or fields for entering aname and/or identification number for the user or employee or group ofusers or employees. The GUI may also provide a mechanism for defining aunique identification of the environment or system and/or a mechanismfor defining a unique identification of the product. For example, theGUI may include fields for entering an identification for anenvironment, or a system identification and a product identification ormenus for selecting an environment or a system identification and aproduct identification. As used herein, environment may mean a computersystem or systems or data processing system or systems depending uponthe job or role of the user or group of users. For example, anindividual could be responsible for a single system and all applicationsrunning on the single system or the individual could be responsible forone or more applications running on a set of systems but the individualmay not be responsible for the overall system administration.

A field or mechanism may also be provided by the GUI to define arelationship of the user relative the system and/or the product. The GUImay also provide a mechanism or field for identifying a evaluator andany criteria for performing an evaluation of the user. A reportingschedule for generating and sending a report to the evaluator may alsobe defined in the GUI.

In block 106, an error message 108 or messages may be received by asystem or processing device for assessment of the skills of a user. Anexample of a system or processing device for assessment of the skills ofa user will be described with reference to FIG. 4.

In block 110, a system error log or logs and/or a product error log orlogs for recording errors reported in the error messages 108 may begenerated. A record of each error encountered by the user associatedwith a system, network or product being used by the user may be recordedin the system error log and product error log depending upon the causeof the error. As used herein, a network error may also be defined as orconsidered as a system error. In another embodiment, depending upon thearchitecture, network being used, or other factors, network errors maybe recorded and monitored in a separate network error log. Also as usedherein, error is a generic term and may include but is not necessarilylimited to any problem, issue, anomaly or other occurrence that may beencountered in using a particular product, system or network. A productmay be a computer program product or software product, computerapplication or similar product or a component of any of these.

In block 110, the system error log or logs and the product error log orlogs may be monitored for various occurrences and based on predefinedcriteria or rules. For example, monitoring the system error log or logsmay include tracking each time a reported system error reoccurs,tracking each time a reported system error is unresolved for more than aselected time period, or tracking other parameters related to reportedsystem errors. Similarly, monitoring the product error log or logs mayinclude tracking each time a reported product error occurs, trackingeach time a reported product error is unresolved for more than aselected time period, or tracking other parameters related to reportedproduct errors. Examples of errors may include password expiration, filesystem full, network problems, hardware faults or errors, or similarerrors.

In block 112, a categorization of the error reported in the errormessage 108 or messages may be determined. Determining thecategorization of the error may include but is not necessarily limitedto assigning one of a plurality of predetermined skill ratings to theuser. Each predetermined skill rating may be associated with apredefined condition as described in more detail herein. The skillrating may correspond to a skill level or level of self-sufficiency ofthe user. As an example, a GUI may be presented to assign one of theplurality of skill ratings based on a predefined set of criteria relatedto the nature of the error, reoccurrences of the error by the same user,behavior of the user, prior training or lack of training of the user,adequacy of documentation, etc. An example of a method for determiningor defining a categorization of an error will be described in moredetail with reference to FIGS. 3A and 3B. A resolution of the error mayalso be determined or defined in block 112.

In block 114, a particular component of the system and or product beingreported in the error message 108 may be determined. For example, adetermination may be made if the error occurred during installation ofthe product or system, configuration of the product or system,administration of the product or system, or during some other evolution,phase, or operation of a component part of the system or product.

In block 116, an identification for a user or group of users may berecorded along with other information or parameters associated with theuser that may be reported or used for assessment of skills of the user.Other information or parameters that may be recorded may include but isnot necessarily limited to a categorization of the error or errors, askill rating assigned to the user, a system identification, a productidentification, and a component identification. Information frommonitoring the system and product error logs in block 110 may also berecorded.

In block 118, a report may be automatically generated based on theinformation recorded in block 116. Accordingly, the report may begenerated using the system error log and the product error log alongwith the identification of the user, the identification of theenvironment or system, the identification of the product and thecategorization of the error to generate the report. The report mayprovide an assessment of the user's skill rating in working with acomputing environment including the environment, system and the productand the user's ability to complete an assigned task using the systemand/or the product or environment. Information may be categorized in thereport based on particular aspects or portions of the system and productfrom which errors occur and a frequency of each specific error todetermine whether additional user skill or skills may be needed and withaccuracy what additional user skill or skills may be needed to moreprecisely define training. Based on the component or area which requiresuser skill improvement, a list of free and fee based education ortraining may be automatically provided in the report. Additionally, thereport may rank order the user or group of users relative to other usersor groups of users.

The report may be automatically transmitted to an evaluator assigned tothe user at predetermined time intervals. The predetermined timeintervals for automatically generating and transmitting each report maybe defined in the user profile as described herein.

FIG. 2 is a flowchart of an example of a method 200 for creating aprofile for the user in accordance with an embodiment of the presentinvention. Similar to that previously described, a GUI or othermechanism may be presented for creating the profile for the user. TheGUI may include fields or drop-down lists or menus for selectingdifferent parameters similar to those described herein for creating theprofile of the user.

In block 202, a unique identification for the user or group of users maybe defined. The user or group of users may be a customer that purchasedthe product or system or technical support from an entity using theskills assessment method and system described herein. The user or groupof users may also be an employee or group of employees that an employerdesires to evaluate using the skills assessment method and systemdescribed herein.

In block 204, the system or systems, product or products used by theuser or group of users defined in block 202 may be uniquely identified.A responsibility or relationship of the user or group of users to thesystem or product may also be defined.

In block 206, an evaluator may be identified or defined. Any criteria orrules to be used by the evaluator in assessing the skills of the user orgroup of users may also be defined.

In block 208, a reporting schedule may be defined. Defining thereporting schedule may include selecting or entering the predeterminedtime interval at which the report is generated and transmitted to theevaluator in block 118 of FIG. 1.

FIGS. 3A and 3B are a flowchart of an example of a method 300 fordetermining a categorization of an error in accordance with anembodiment of the present invention. In block 302, an error messagereporting an error may be received by the system for performing theskills assessment.

In block 304, a GUI may be presented or another mechanism may beprovided for categorization of the error. As previously described, erroras used herein is a generic term which may include but is notnecessarily limited to a problem, issue, or other occurrence or anomalyencountered by a user. The error may be defined as one of a productdefect, a system error, and a user error or a similar designation may beused to define a nature of the different types of errors.

In block 306, a determination may be made whether the error is a productdefect or a user error. If the error is a product defect, the method 300may advance to a termination block 308. In termination block 308, theerror may be designated or categorized as not being the result of a userskill deficit. A first predetermined skill rating may be assigned to theuser in response to the error not being defined as a user error. Forexample, a skill rating equal to 0 may be assigned to the user inresponse to the error not being defined as a user error or in theexample of FIG. 3A the error being a product defect.

If the error is determined to be a user error in block 306, the method300 may advance to block 310. In block 310, a determination may be madeif the user previously reported the same type of error. If the userpreviously reported the same type of error, the method 300 may advanceto termination block 312. In termination block 312, the error may becategorized by a designation that the user appears to have a skilldeficit for the product component may be recorded similar to thatdescribed with reference to block 116 in FIG. 1. The error may befurther categorized by a second predetermined skill rating beingassigned to the user in response to the user having previously reportedthe same type of error and the error being defined as a user error fromblock 310. In the example illustrated in FIG. 3A, a skill rating equalto 4 may be assigned to the user in response to the user havingpreviously reported the same error and the error being determined to bea user error in block 310.

If the same error is not reported in block 310, the method 300 mayadvance to block 314. In block 314, a determination may be made whetherthe product documentation has been reviewed by the user. For example, amessage may be sent to the user requesting the user to respond whetherhe has reviewed the product documentation. If the user has not reviewedthe product documentation, the method 300 may advance to terminationblock 316. In termination block 316, the error may be categorized by adesignation that the user needs to review the product documentation toimprove self sufficiency may be recorded. A third predetermined skillrating may be assigned to the user in response to determining that theuser has not reviewed the documentation for the product to furthercategorize the error.

If a determination is made in block 314 that the user has reviewed theproduct documentation, the method 300 may advance to block 318. In block318, a message to determine if the documentation for the product needsimprovement may be generated. A system administrator or evaluator mayreceive the message regarding whether the documentation for the productneeds improvement. An evaluation of the documentation may be performedand a response entered into the system.

In block 320, a determination may be made whether the documentationneeds improvement. If a determination is made in block 320 at thedocumentation needs improvement, the method 300 may advance to block 308and the error may be categorized or a designation may be recorded thatthe error is not the result of a user skill deficit and the firstpredetermined skill rating (skill rating equal to 0 for example) may beassigned to the user similar to that previously described.

If a determination is made in block 320 that the documentation does notneed improvement, the method 300 may advance to block 322. In block 322,a determination may be made whether the user has reviewed trainingmodules for the product, component of the product, or the like. If adetermination is made that the user has reviewed the training modules,the method 300 may advance to termination block 324. In terminationblock 324 the error may be categorized by a designation being recordedthat the user appears to have a skill deficit for the particular productor product component. The error may also be categorized by a fourthpredetermined skill rating may be assigned to the user in response todetermining that the user has performed the training module or modulesfor the product, component, etc. In the example illustrated in FIG. 3B,the user may be assigned a skill rating equal to 4 in response todetermining in block 322 that the user has reviewed training module ormodules for the product or component.

If a determination is made in block 322 that the user has not reviewedthe training modules, the method 300 may advance to block 326. In block326, a determination may be made whether the user has previously beeninstructed to take available training. If the user has not previouslybeen instructed to take available training, the method 300 may advanceto termination block 328. In termination block 328, the error may becategorized by a designation may that the user has a potential area forimprovement being recorded. A fifth predetermined skill rating may beassigned to the user in response to a training module having beenavailable and the user not having been instructed to take the availabletraining to also categorize the error. In the example illustrated inblock 328 of FIG. 3B, the user may be assigned a skill rating of 1 inresponse to a training module being available and the user not havingbeen instructed to take the training module.

If the user has been previously instructed to take the availabletraining in block 326, the method 300 may advance to termination block330. In termination block 330, the error may be categorized by adesignation that the user has a skill deficit in a particular area andhas refused to correct take the training to improve being recorded. Theuser may be assigned the fourth predetermined skill rating similar totermination block 312 or a sixth predetermined skill rating may beassigned to the user in response to the user having been instructed totake the available training and the user not having taken the traininghas instructed. In the example illustrated in block 330 of FIG. 3B, theuser may be assigned a skill rating of 4 in response to the user havingbeen instructed to perform or take the training module and the user nothaving performed or taken the training module.

FIG. 4 is a block schematic diagram of an example of a system 400 forassessment of skills of a user in accordance with an embodiment of thepresent invention. The methods 100, 200, and 300 of FIGS. 1, 2, 3A and3B, respectively, may be embodied in or performed by the system 400. Thesystem 400 may include a processing device 402. The processing device402 may be a server or similar processing device. A module 404 forskills assessment may be stored on the processing device 402 and may beoperable on the processing device 402 for assessment of skills of a usersimilar to that described herein. The module 404 may be stored on a filesystem of the processing device 402. Portions of or all of the methods100, 200 and 300 may be embodied in or performed by the module 404.

The module 404 for skills assessment may include a profile creationmodule 406. The profile creation module 406 may perform operationssimilar to those described in method 200 in FIG. 2.

The module 404 for skills assessment may also include a categorizationmodule 408. The categorization module 408 may perform operations similarto those described in method 300 of FIGS. 3A and 3B.

A report generation module 410 may also be included in the module 404for skills assessment to generate reports similar to those describedherein for assessment of the skills of a user.

A system error log or logs and product error log or logs 412 may also bestored on the processing device 402 or server. The system error log orlogs and product error log or logs 412 may also be part of the module404 for skills assessment similar to that illustrated in FIG. 4 orseparate components associated with the processing device 402.

The module 404 for skills assessment may further include a monitoringunit 414 or units for monitoring the system and product logs similar tothat previously described.

A database 416 may also reside on the processing device 402 or server.The database 416 may store the unique identifications for users orgroups of users, categorization of errors, skill ratings,identifications of systems and products, components of systems andproducts, and any other information that may be used for assessment ofthe skills of a user similar to that described herein.

A user 418 of the assessment system, an evaluator, a systemadministrator or similar individual may use a computer system 420 toaccess the processing device 402 or server and module 404 for skillsassessment. The computer system 420 may include a processor 422 tocontrol operation of the computer system 420 and a file system 424 ormemory. An operating system 426, applications 428 and other programs maybe stored on the file system 424 for running or operating on theprocessor 422. A web or Internet browser 430 may also be stored on thefile system 424 for accessing the processing device 402 or server via anetwork 432 for creating user profiles and receiving reports for skillsassessment similar that described herein, controlling operation of theskills assessment module 404, or for other purposes related to skillsassessment. The network 432 may be the Internet, an intranet or otherprivate or proprietary network.

The computer system 420 may also include a display 434, a speaker system436, and one or more input devices, output devices or combinationinput/output devices, collectively I/O devices 438. The I/O devices 438may include a keyboard, pointing device, such as a mouse, disk drivesand any other devices to permit a user, such as user 418, to interfacewith and control operation of the computer system 420 and to access themodule 404 or system for skills assessment. The display 434 may presentreports generated by the skills assessment module 404. The I/O device438 may also present any reports and provide an interface forcontrolling the skills assessment module 404.

In accordance with an embodiment, based upon the interaction of theuniquely identified user profile (which could be a user ID, a set of IPaddresses, etc. and have a defined evaluator) with the environment,product and system logs would create a log to keep track of errorsencountered with the environment and make special notice of repeatederrors. In addition the orthogonal data (pmr classification i.e. usererror, product code bug etc.) associated with any ticket opened withvendor support may be used in combination with the generated error logsfrom the system and product logs to generate a report which may providean accurate assessment of a user's skill level in working with anenvironment and their ability to complete assigned projects. A reportmay be automatically sent periodically to the assigned evaluator of theindividual user or group being evaluated. Additionally this informationcould be categorized based on the areas of where the errors areoccurring and frequency of errors to determine where additional skill ortraining may be needed. As described herein, the methods and systems maybe expanded to define unique profiles for groups instead of just at anindividual or single user level. By combining accurate evidence from theinteraction with the environment and issues or errors reported tovendors, the skills assessment may provide valuable data which is oftenmissed by management. The skills assessment information may be used inperforming employee evaluations, to identify areas of inefficiency, todetermine a set of skills to look for in future employees, and toidentify areas where further education and training is needed.

The methods and systems described herein provide an automatic way toprovide an accurate assessment of an employee's skills, as the skillsrelate to the employee's specific job function and the products theemployee is required to know and use, to management for the purposes ofperformance evaluation, skills assessment, education planning and alsoto generate a list of requirements to use for future training andhiring.

The flowcharts and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems which perform the specified functions or acts, or combinationsof special purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of embodiments ofthe invention. As used herein, the singular forms “a”, “an” and “the”are intended to include the plural forms as well, unless the contextclearly indicates otherwise. It will be further understood that theterms “comprises” and/or “comprising,” when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to embodiments of the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of embodiments ofthe invention. The embodiment was chosen and described in order to bestexplain the principles of embodiments of the invention and the practicalapplication, and to enable others of ordinary skill in the art tounderstand embodiments of the invention for various embodiments withvarious modifications as are suited to the particular use contemplated.

Although specific embodiments have been illustrated and describedherein, those of ordinary skill in the art appreciate that anyarrangement which is calculated to achieve the same purpose may besubstituted for the specific embodiments shown and that embodiments ofthe invention have other applications in other environments. Thisapplication is intended to cover any adaptations or variations of thepresent invention. The following claims are in no way intended to limitthe scope of embodiments of the invention to the specific embodimentsdescribed herein.

1. A method, operable on a processing device, for assessment of skillsof a user, comprising: receiving, by the processing device, an errormessage reporting an error associated with the user; determining, by theprocessing device, a categorization of the error, wherein determiningthe categorization of the error comprises assigning one of a pluralityof predetermined skill ratings to the user, each predetermined skillrating being associated with a predefined condition; and generating, bythe processing device, a report for assessment of skills of the user,the report comprising an identification of the user, the error,identification of a system if a system associated error, identificationof a product if a product associated error, the categorization of theerror, and the predetermined skill rating assigned to the user.
 2. Themethod of claim 1, wherein the user is a group of users.
 3. The methodof claim 1, further comprising: generating and monitoring a system errorlog for recording each system error encountered by the user, whereinmonitoring the system log comprises: tracking each time a reportedsystem error reoccurs; and tracking each time the reported system erroris unresolved for more than a selected time period.
 4. The method ofclaim 3, further comprising: generating and monitoring a product errorlog for recording each error encountered by the user and associated witha particular product, wherein monitoring the product log comprises:tracking each time a reported product error reoccurs; and tracking eachtime the reported product error is unresolved for more than a selectedtime period.
 5. The method of claim 4, wherein generating the reportcomprises using the system error log and the product error log alongwith the identification of the user, the identification of the system,the identification of the product and the categorization of the error togenerate the report which provides an assessment of the user's skillrating in working with a computing environment comprising the system andthe product and the user's ability to complete an assigned task.
 6. Themethod of claim 5, further comprising categorizing information in thereport based on particular aspects of the system and product from whicherrors occur and a frequency of each specific error to determine whetheradditional user skill is needed and what additional user skill isneeded.
 7. The method of claim 6, further comprising automaticallysending the report to an evaluator assigned to the user at predeterminedtime intervals.
 8. The method of claim 1, further comprising creating aprofile for the user, wherein creating the profile comprises: providinga mechanism for defining a unique identification of the user; providinga mechanism for defining a unique identification of the system;providing a mechanism for defining a unique identification of theproduct; providing a mechanism for defining a relationship of the userrelative the system and the product; providing a mechanism foridentifying a evaluator and any criteria for performing an evaluation ofthe user; and providing a mechanism for defining a reporting schedulefor generating and sending the report to the evaluator.
 9. The method ofclaim 8, wherein providing the mechanism comprises presenting agraphical user interface.
 10. The method of claim 1, wherein determininga categorization comprises: defining the error as one of a productdefect, a system error, and a user error; assigning a firstpredetermined skill rating to the user in response to the error notbeing defined as the user error; determining if the user previouslyreported a same type of error and the error being defined as user error;and assigning a second predetermined skill rating to the user inresponse to the user having previously reported the same type of errorand the error being defined as user error.
 11. The method of claim 10,wherein determining a categorization comprises: determining if the userhas reviewed documentation for the product; assigning a thirdpredetermined skill rating to the user in response to determining thatthe user has not reviewed the documentation for the product; generatinga message to determine if the documentation for the product needsimprovement in response to determining that the user has reviewed thedocumentation for the product; determining if the user has performed anyavailable training module for the product; assigning a fourthpredetermined skill rating to the user in response to determining thatthe user has performed the training module for the product; determiningif the user was previously instructed to perform the training module ifavailable; assigning a fifth predetermined skill rating to the user inresponse to the training module being available and the user not havingbeen instructed to perform the training module; and assigning the fourthpredetermined skill rating to the user in response to the user havingbeen instructed to perform the training module and the user not havingperformed the training module.
 12. The method of claim 11, wherein thefirst predetermined skill rating corresponds to the user not having askill deficit, the second predetermined skill rating corresponds to theuser having the skill deficit, the third predetermined skill ratingcorresponds to the user having the skill deficit and needing to reviewproduct documents to improve self sufficiency, the fourth predeterminedskill rating corresponds to the user having the skill deficit eventhough the user has performed an available training module; and thefifth predetermined skill rating corresponds to the user having theskill deficit and the user needing to be instructed to perform thetraining module.
 13. A processing device for assessment of skills of auser comprising: a processor, the processor configured to receive anerror message reporting an error associated with the user; a moduleoperable on the processor for assessment of skills of the user, themodule comprising: a module for determining a categorization of theerror, wherein determining the categorization of the error comprisesassigning one of a plurality of predetermined skill ratings to the user,each predetermined skill rating being associated with a predefinedcondition; and a module for generating a report for assessment of skillsof the user, the report comprising an identification of the user, theerror, identification of a system if a system associated error,identification of a product if a product associated error, thecategorization of the error, and the predetermined skill rating assignedto the user.
 14. The processing device of claim 13, further comprising:a system error log for recording each system error encountered by theuser; a unit for monitoring the system log, the unit for monitoring thesystem log comprising: a module for tracking each time a reported systemerror reoccurs; and a module for tracking each time the reported systemerror is unresolved for more than a selected time period.
 15. Theprocessing device of claim 14, further comprising: a product error logfor recording each product error encountered by the user and associatedwith a particular product; a unit for monitoring the product error log,the unit for monitoring the product error log comprising: a module fortracking each time a reported product error reoccurs; and a module fortracking each time the reported product error is unresolved for morethan a selected time period.
 16. The processing device of claim 13,wherein the module for determining a categorization comprises a unitconfigured for: defining the error as one of a product defect, a systemerror, and a user error; assigning a first predetermined skill rating tothe user in response to the error not being defined as the user error;determining if the user previously reported a same type of error and theerror being defined as user error; assigning a second predeterminedskill rating to the user in response to the user having previouslyreported the same type of error and the error being a user error. 17.The processing device of claim 16, wherein the module for determining acategorization further comprises a unit configured for: determining ifthe user has reviewed documentation for the product; assigning a thirdpredetermined skill rating to the user in response to determining thatthe user has not reviewed the documentation for the product; generatinga message to determine if the documentation for the product needsimprovement in response to determining that the user has reviewed thedocumentation for the product; determining if the user has performed anyavailable training module for the product; assigning a fourthpredetermined skill rating to the user in response to determining thatthe user has performed the training module for the product; determiningif the user was previously instructed to perform the training module ifavailable; assigning a fifth predetermined skill rating to the user inresponse to the training module being available and the user not havingbeen instructed to perform the training module; and assigning the fourthpredetermined skill rating to the user in response to the user havingbeen instructed to perform the training module and the user not havingperformed the training module.
 18. A computer program product forassessment of skills of a user, the computer program product comprising:a computer readable storage medium having computer readable program codeembodied therewith, the computer readable program code comprising:computer readable program code configured to receive an error messagereporting an error associated with the user; computer readable programcode configured to determine a categorization of the error, thecategorization of the error being determined by assigning one of aplurality of predetermined skill ratings to the user, each predeterminedskill rating being associated with a predefined condition; and computerreadable program code configured to generate a report for assessment ofskills of the user, the report comprising an identification of the user,the error, identification of a system if a system associated error,identification of a product if a product associated error, thecategorization of the error and the predetermined skill rating assignedto the user.
 19. The computer program product of claim 18, wherein thecomputer readable program code configured to determine a categorizationof the error comprises: computer readable program code configured todefine the error as one of a product defect, a system error, and a usererror; computer readable program code configured to assign a firstpredetermined skill rating to the user in response to the error notbeing defined as the user error; computer readable program codeconfigured to determine if the user previously reported a same type oferror and the error being defined as user error; and computer readableprogram code configured to assign a second predetermined skill rating tothe user in response to the user having previously reported the sametype of error and the error being defined as user error.
 20. Thecomputer program product of claim 19, wherein the computer readableprogram code configured to determine a categorization of the errorfurther comprises: computer readable program code configured todetermine if the user has reviewed documentation for the product;assigning a third predetermined skill rating to the user in response todetermining that the user has not reviewed the documentation for theproduct; computer readable program code configured to generate a messageto determine if the documentation for the product needs improvement inresponse to determining that the user has reviewed the documentation forthe product; computer readable program code configured to determine ifthe user has performed any available training module for the product;computer readable program code configured to assign a fourthpredetermined skill rating to the user in response to determining thatthe user has performed the training module for the product; computerreadable program code configured to determine if the user was previouslyinstructed to perform the training module if available; computerreadable program code configured to assign a fifth predetermined skillrating to the user in response to the training module being availableand the user not having been instructed to perform the training module;and computer readable program code configured to assign the fourthpredetermined skill rating to the user in response to the user havingbeen instructed to perform the training module and the user not havingperformed the training module.